import { func } from "prop-types"
import { fetchLogin, fetchUserInfo } from "../api/user"


//action 生成器   ，便于维护，可以复用
export function switchSize(size) {
    return {
        type: 'APP_SIZE', payload: size
    }
}
export function switchLang(lang) {
    return {
        type: 'APP_LANG', payload: lang
    }
}
export function switchColor(color) {
    return {
        type: 'APP_COLOR', payload: color
    }
}
//异步action生成器
export function login(data) {
    return function (dispatch) {
        //函数里面可以写异步代码
        fetchLogin(data).then(({ token }) => {
            //登陆成功后才有token
            if (token) {
                // console.log('服务期响应的数据：', res);
                localStorage.setItem('token', token)
                //token存储到redux中
                dispatch({ type: 'USER_LOGIN', payload: token })
            }

        })
    }
}
export function getInfo() {
    return function (dispatch) {
        //函数里面可以写异步代码
        fetchUserInfo().then((res) => {
            // console.log('用户信息：', res);
            //如果后端返回了用户信息，并且用户信息中有roles，才会把用户信息存储到redux中
            if (res && res.roles) {
                dispatch({ type: 'USER_INFO', payload: res })
            }

        })
    }
}

export function resetUser(color) {
    return { type: 'USER_RESET', payload: null }
}